package com.coocaa.x.service.litepm.aidl;

import com.coocaa.x.service.litepm.data.AppInfo;
import com.coocaa.x.service.litepm.data.InstallParams;
import com.coocaa.x.service.litepm.aidl.ILitePMClearCacheListener;
import com.coocaa.x.service.litepm.aidl.ILitePMMoveAppListener;
import com.coocaa.x.service.litepm.aidl.ILitePMSpeedUpListener;
import com.coocaa.x.service.litepm.aidl.ILitePMInstallListener;
import com.coocaa.x.service.litepm.aidl.ILitePMUninstallListener;

interface ILitePMService {
	List<AppInfo> getInstalledApps();
	AppInfo getAppInfo(String pkgname);
	boolean isInstalled(String pkgname);
	
	void installWithSP(String apkfile,in InstallParams params);
	void install(String apkfile, boolean silent, in InstallParams params);
	void uninstall(String pkgname, boolean silent);
	void uninstallApps(in List<String> list,boolean needAdd);
	List<String> getUninstallList();
	int getAppInstallState(String pkgname);
	void addInstallListener(in ILitePMInstallListener listener);
	void removeInstallListener(in ILitePMInstallListener listener);
	void addUninstallListener(in ILitePMUninstallListener listener);
	void removeUninstallListener(in ILitePMUninstallListener listener);
	void addSpeedUpListener(in ILitePMSpeedUpListener listener);
    void removeSpeedUpListener(in ILitePMSpeedUpListener listener);
	
	boolean movePackage(String packageName, String location, ILitePMMoveAppListener listener);
	boolean clearCache(String packageName, ILitePMClearCacheListener listener);
	boolean speedUp(int delay);
	
	boolean killProcess(String pkgName);
	
	boolean startApp(String clsName, boolean isRoot, String pkgname);
	boolean startAppByComponentName(String clsName, boolean isRoot, in ComponentName cname);
	
	
	
   void whoAmI();
}